// const arr = [1, 2, 3]
// // 改变this指向console来实现数组参数的获取并输出
// console.log.apply(console, arr)
// // 1 2 3
// const foo1 = arr[0]
// const foo2 = arr[1]
// const foo3 = arr[2]
// console.log('传统的数组解构', foo1, foo2, foo3)
// // 1 2 3
// const [foo1, foo2, foo3] = arr
// console.log('ES2015数组解构', foo1, foo2, foo3)
// // 1 2 3
// // 提取指定位置
// const [, , foo3] = arr
// console.log('ES2015数组解构', foo3)
// // 3
// // ...只能在结构成员的最后一个使用
// const [...rest] = arr
// console.log('ES2015剩余参数', rest)
// // 1 2 3
// // 小于数组长度是从前到后, 大于数组长度是undefined
// // ---------------------------------------------------------------------
// // 默认值, 没提取到就拿默认值, 拿到就被覆盖了, 多余的直接默认值
// const [foo, bar, baz = 123, more = 456] = arr
// console.log(baz, more)
// // 3 456
// // ---------------------------------------------------------------------
// // 拆分字符串获取指定位置
// // 传统方法需要临时变量过渡一下, 先拆然后获取根目录
// const path = '/foo/bar/baz'
// const tmp = path.split('/')
// console.log('tmp', tmp)
// // tmp [ '', 'foo', 'bar', 'baz' ]
// const rootdir = tmp[1]
// console.log(tmp[1])
// // foo
// // 通过数组解构可以只取两个 第一个时空第二个就是根目录
// const [, rootdir] = path.split('/')
// console.log(rootdir)
// // foo
